/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modele.dao;

import java.sql.SQLException;
import modele.baseDeDonnees.BaseDeDonnees;
import beans.Etudiant;
import beans.Formateur;
import beans.Module;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

/**
 *
 * @author Rami
 */
public  class ListerChoixDAO {

    /**
     * Charge la liste des etudiants
     * @precondition : aucune
     * @postcondition : renvoi la liste de tous les etudiants
     *
     * 
     * @return Liste d'etudiants diponible en BDD
     */
    public static ArrayList<Etudiant> listerEtudiants()  {
        try {
             Connection c = BaseDeDonnees.seConnecterBD();
            Statement requete = c.createStatement();
            ResultSet reponse;
            ArrayList<Etudiant> listeEtudiants = new ArrayList<Etudiant>();
            //  id_session a changer par une variable dnamique
            reponse = requete.executeQuery("select id_etudiant , nom , prenom FROM etudiant WHERE id_session = '1';");
            while (reponse.next()) {
                listeEtudiants.add(new Etudiant(reponse.getInt("id_etudiant"), reponse.getString("nom"), reponse.getString("prenom")));
            }
            reponse.close();
            requete.close();
            c.close();
            return listeEtudiants;
        } catch (Exception ex) {
            System.out.println("Impossible de charger les listes !! La base de donnée de repond pas !");

            return null ;
           }
    }

       /**
        * Charge la liste des formateurs
      * @precondition : aucune
     * @postcondition : renvoi la liste de tous les formateurs
     *
     * @return une liste de formateurs diponible en BDD
     */
    public static ArrayList<Formateur> listerFormateurs()  {
        try {
              Connection c = BaseDeDonnees.seConnecterBD();
            Statement requete = c.createStatement();
            ResultSet reponse;
            ArrayList<Formateur> listeFormateursDisponible = new ArrayList<Formateur>();
            reponse = requete.executeQuery("SELECT id_formateur, nom, prenom  FROM formateur;");
            while (reponse.next()) {
                listeFormateursDisponible.add(new Formateur(reponse.getInt("id_formateur"), reponse.getString("nom"), reponse.getString("prenom")));
            }
            reponse.close();
            requete.close();
            c.close();
            return listeFormateursDisponible;
        } catch (Exception ex) {
             System.out.println("Impossible de charger les listes !! La base de donnée de repond pas !");

           return null ;
        }

    }

    /**
     * Charge la liste des Modules
     * @precondition : aucune
     * @postcondition : renvoi la liste de tous les modules
     *
     *
     * @return Listes des modules diponible en BDD
     */
    public static ArrayList<Module> listerModules()  {
        try {
              Connection c = BaseDeDonnees.seConnecterBD();
            Statement requete = c.createStatement();
            ResultSet reponse;
            ArrayList<Module> listeModuleDisponible = new ArrayList<Module>();
            reponse = requete.executeQuery("SELECT id_module, sigle  FROM module;");
            while (reponse.next()) {
                listeModuleDisponible.add(new Module(reponse.getInt("id_module"), reponse.getString("sigle")));
            }
            reponse.close();
            requete.close();
            c.close();
            return listeModuleDisponible;
        } catch (Exception ex) {
             System.out.println("Impossible de charger les listes !! La base de donnée de repond pas !");

            return null ;
        }
    }
}
